package review.arrays01221012;

/**
 * 合并两个有序数组
 *  思路：使用一个指针遍历，因为默认是使用 num1数组保存存储记录
 */
public class LeetCode88 {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int m1 = m-1, n2 = n-1,  icur = m+n-1;
        // 先比较，让一个数组遍历完
        while (m1 >= 0 && n2 >= 0){
            nums1[icur--] = (nums1[m1] > nums2[n2]) ? nums1[m1--] : nums2[n2--];
        }

        // 剩余的，如果是n1的直接返回，如果是n2的，还得放入
        while (n2 >= 0){
            nums1[icur--] = nums2[n2--];
        }
    }
}
